﻿<?xml version="1.0" encoding="utf-8" ?>
<platform namespace="http://metalx.org/Intel/80386/ExtendedOperators" xmlns="http://metalx.org/Platform">
	<processor>
		<operation name="DescriptorTableFunction" value="01"/>
		<operation name="CopyControlRegisterToRegister" value="20"/>
		<operation name="CopyRegisterToControlRegister" value="22"/>
		<operation name="CopyAXDXToCXModelSpecificRegister" value="30"/>
		<operation name="CopyCXModelSpecificRegisterToAXDX" value="32"/>
		<operation name="GetCpuInformation" value="A2"/>
		<operation name="RandomFunction" value="C7"/>
		
		<!--TSC-->
		<operation name="CopyTimestampCounterToAXDX" value="31"/>

		<!--MMX-->
		<operation name="EmptyMmxState" value="77"/>
		<operation name="CopyOperandToMmxRegister32" value="6E"/>
		<operation name="CopyMmxRegisterToOperand32" value="7E"/>
		<operation name="CopyOperandToMmxRegister64" value="6F"/>
		<operation name="CopyMmxRegisterToOperand64" value="7F"/>
		
		<operation name="AddOperandToMmxRegister8" value="FC"/>
		<operation name="AddOperandToMmxRegister16" value="FD"/>
		<operation name="AddOperandToMmxRegister32" value="FE"/>
		<operation name="AddOperandToMmxRegister64" value="FF"/>
		<operation name="AddOperandToMmxRegister8WithSaturate" value="DC"/>
		<operation name="AddOperandToMmxRegister16WithSaturate" value="DD"/>
		<operation name="AddOperandToMmxRegister32WithSaturate" value="DE"/>
		<operation name="AddOperandToMmxRegister64WithSaturate" value="DF"/>
		<operation name="AddOperandToMmxRegister8WithSignedSaturate" value="EC"/>
		<operation name="AddOperandToMmxRegister16WithSignedSaturate" value="ED"/>
		<operation name="AddOperandToMmxRegister32WithSignedSaturate" value="EE"/>
		<operation name="AddOperandToMmxRegister64WithSignedSaturate" value="EF"/>

		<operation name="SubtractOperandFromMmxRegister8" value="F8"/>
		<operation name="SubtractOperandFromMmxRegister16" value="F9"/>
		<operation name="SubtractOperandFromMmxRegister32" value="FA"/>
		<operation name="SubtractOperandFromMmxRegister64" value="FB"/>
		<operation name="SubtractOperandFromMmxRegister8WithSaturate" value="D8"/>
		<operation name="SubtractOperandFromMmxRegister16WithSaturate" value="D9"/>
		<operation name="SubtractOperandFromMmxRegister32WithSaturate" value="DA"/>
		<operation name="SubtractOperandFromMmxRegister64WithSaturate" value="DB"/>
		<operation name="SubtractOperandFromMmxRegister8WithSignedSaturate" value="E8"/>
		<operation name="SubtractOperandFromMmxRegister16WithSignedSaturate" value="E9"/>
		<operation name="SubtractOperandFromMmxRegister32WithSignedSaturate" value="EA"/>
		<operation name="SubtractOperandFromMmxRegister64WithSignedSaturate" value="EB"/>

		<operation name="MultiplyMmxRegisterByOperandLow" value="D5"/>
		<operation name="MultiplyMmxRegisterByOperandHigh" value="E4"/>
		<operation name="MultiplyMmxRegisterByOperandHighSigned" value="E5"/>

		<operation name="MultiplyMmxRegisterByOperandWithAdd" value="F5"/>

		<operation name="AndMmxRegisterWithOperand" value="DB"/>
		<operation name="AndNotMmxRegisterWithOperand" value="DF"/>
		<operation name="OrMmxRegisterWithOperand" value="EB"/>
		<operation name="ExclusiveOrMmxRegisterWithOperand" value="EF"/>

		<operation name="ShiftMmxRegisterLeftByOperand8" value="F0"/>
		<operation name="ShiftMmxRegisterLeftByOperand16" value="F1"/>
		<operation name="ShiftMmxRegisterLeftByOperand32" value="F2"/>
		<operation name="ShiftMmxRegisterLeftByOperand64" value="F3"/>

		<operation name="ShiftMmxRegisterRightByOperand8" value="D0"/>
		<operation name="ShiftMmxRegisterRightByOperand16" value="D1"/>
		<operation name="ShiftMmxRegisterRightByOperand32" value="D2"/>
		<operation name="ShiftMmxRegisterRightByOperand64" value="D3"/>

		<operation name="ShiftMmxRegisterRightByOperandWithSign8" value="E0"/>
		<operation name="ShiftMmxRegisterRightByOperandWithSign16" value="E1"/>
		<operation name="ShiftMmxRegisterRightByOperandWithSign32" value="E2"/>
		<operation name="ShiftMmxRegisterRightByOperandWithSign64" value="E3"/>

		<operation name="ShiftMmxRegisterByImmediateFunction" value="EF"/>

		<operation name="PackOperandIntoMmxRegisterWithSignedSaturate32" value="6B"/>
		<operation name="PackOperandIntoMmxRegisterWithSaturate16" value="67"/>
		<operation name="PackOperandIntoMmxRegisterWithSignedSaturate16" value="63"/>

		<operation name="UnpackOperandToMmxRegisterLow8" value="60"/>
		<operation name="UnpackOperandToMmxRegisterLow16" value="61"/>
		<operation name="UnpackOperandToMmxRegisterLow32" value="62"/>

		<operation name="UnpackOperandToMmxRegisterHigh8" value="68"/>
		<operation name="UnpackOperandToMmxRegisterHigh16" value="69"/>
		<operation name="UnpackOperandToMmxRegisterHigh32" value="6a"/>

		<operation name="CompareEqualMmxRegisterWithOperand8" value="74"/>
		<operation name="CompareEqualMmxRegisterWithOperand16" value="75"/>
		<operation name="CompareEqualMmxRegisterWithOperand32" value="76"/>

		<operation name="CompareGreaterMmxRegisterWithOperandWithSign8" value="64"/>
		<operation name="CompareGreaterMmxRegisterWithOperandWithSign16" value="65"/>
		<operation name="CompareGreaterMmxRegisterWithOperandWithSign32" value="66"/>
	
		<!--SSE-->
		<operation name="CopyXmmRegisterToAlignedOperand" value="28"/>
		<operation name="CopyAlignedOperandToXmmRegister" value="29"/>
	
		<operation name="CopyXmmRegisterToAlignedOperand" value="28"/>
		<operation name="CopyAlignedOperandToXmmRegister" value="29"/>
	</processor>
</platform>